Effects and effect inference for a core Java calculus
نویسندگان
چکیده
An effects system can be used to delimit the scope of computational effects within a program. This information is not only useful for the programmer, but also can be used in the definition of a number of optimizations. Most effects systems have been defined for functional languages with simple state. Greenhouse and Boyland have recently suggested how an effects system could be used within Java. In this paper we take a core imperative calculus for Java, and consider its extension with an effects system, following the suggestions of Greenhouse and Boyland. We define formally the effects system and an instrumented operational semantics and prove the correctness of the effects system; a question left open by Greenhouse and Boyland. We also consider the question of effect inference for our calculus, detailing an algorithm for inferring effects information and prove it correct.
منابع مشابه
MJ: An imperative core calculus for Java and Java with effects
In order to study rigorously object-oriented languages such as Java or C, a com-mon practice is to define lightweight fragments, or calculi, which are sufficiently smallto facilitate formal proofs of key properties. However many of the current proposals forcalculi lack important language features. In this paper we propose Middleweight Java,MJ, as a contender for a minimal im...
متن کاملExtending the Qualitative Trajectory Calculus Based on the Concept of Accessibility of Moving Objects in the Paths
Qualitative spatial representation and reasoning are among the important capabilities in intelligent geospatial information system development. Although a large contribution to the study of moving objects has been attributed to the quantitative use and analysis of data, such calculations are ineffective when there is little inaccurate data on position and geometry or when explicitly explaining ...
متن کاملA history of Floral diversity (pollen, spores and algal) during the latest Holocene in the Bandung basin based on palynological analysis in Cihideung, West Java, Indonesia
Floral diversity is a measure of number of type flora in an area, and reflects how vegetation develops in response to the environmental condition during a certain time interval. The present study aims to examine changes in the diversity of vegetation (pollen, spores and algae), evenness, and similarity in the Bandung Basin through a core of 240 cm depth using a ground drill, as well as the ...
متن کاملJava & Lambda: a Featherweight Story
We present FJ&λ, a new core calculus that extends Featherweight Java (FJ) with interfaces, supporting multiple inheritance, λ-expressions, and intersection types. Our main goal is to formalise how lambdas and intersection types are grafted on Java 8, by studying their properties in a formal setting. We show how intersection types play a significant role in several cases, in particular in the ty...
متن کاملA Type-based Trace Analysis for Java
The intersection type discipline (ITD) is a well established one in the field of the Lambda Calculus (LC) and the functional programming paradigm. It has also been extended to Term Rewriting Systems (TRS) and more recently to object calculi and sequent calculi. We continue this trend by applying the techniques of ITD to the analysis of the (class based) object-oriented (OO) programming paradigm...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 82 شماره
صفحات -
تاریخ انتشار 2003